package com.qiaofang.applet.service.member.service;

import com.qiaofang.applet.common.base.BaseService;
import com.qiaofang.applet.service.member.domain.MemberOperate;
import com.qiaofang.applet.service.member.service.dto.*;
import com.qiaofang.applet.service.other.service.dto.AutoEmployeeReplyDto;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * 会员操作记录汇总服务
 *
 */
public interface MemberOperateService extends BaseService<MemberOperate, String> {

    /**
     * 个人门店-近30日访客、粉丝、关注
     * @param uniqueUuid
     * @param memberId
     * @return
     */
    FollowersAndVisitorsDto getIndexFollowersAndVisitors(String uniqueUuid, String memberId);

    /**
     * 个人门店-今日数据
     * @param dailyDataQueryDto
     * @return
     */
    DailyDataDto getDailyData(DailyDataQueryDto dailyDataQueryDto);

    /**
     * 今日访问
     * @param employeeUniqueUuid
     * @return
     */
    TodayVisitDto getTodayVisit(String employeeUniqueUuid, String memberId);

    /**
     * 今日转发
     * @param employeeUniqueUuid
     * @param memberId
     * @return
     */
    TodayForwardDto getTodayForward(String employeeUniqueUuid, String memberId);

    /**
     * 今日互动
     * @param employeeUniqueUuid
     * @param memberId
     * @return
     */
    TodayExchangeDto getTodayExchange(String employeeUniqueUuid, String memberId);

    /**
     * 数据-今日访问数据
     * @param dailyDataQueryDto
     * @return
     */
    DailyDataForVisitDto getDailyDataForVisit(DailyDataQueryDto dailyDataQueryDto);

    /**
     * 数据-今日转发数据
     * @param dailyDataQueryDto
     * @return
     */
    DailyDataForForwardDto getDailyDataForForward(DailyDataQueryDto dailyDataQueryDto);

    /**
     * 数据-今日互动数据
     * @param dailyDataQueryDto
     * @return
     */
    DailyDataForExchangeDto getDailyDataForExchange(DailyDataQueryDto dailyDataQueryDto);

    /**
     * 当前会员浏览轨迹
     * @param dailyDataQueryDto
     * @return
     */
    Page<MemberBrowseTracksDto> getMemberBrowseTracks(DailyDataQueryDto dailyDataQueryDto, Pageable pageable);

    /**
     * 修改会员备注
     * @param dto
     */
    String updateMemberRemark(UpdateMemberRemarkDto dto);

    /**
     * 当前会员分享轨迹
     * @param dailyDataQueryDto
     * @return
     */
    List<MemberShareTracksDto> getMemberShareTrack(DailyDataQueryDto dailyDataQueryDto);

    /**
     * 客源管理-新访客列表
     * @param employeeUniqueUuid
     * @return
     */
    Page<CustomerManageDto> getVisitorList(String employeeUniqueUuid, Pageable pageable);

    /**
     * 客源管理-粉丝列表
     * @param employeeUniqueUuid
     * @return
     */
    Page<CustomerManageDto> getFansList(String employeeUniqueUuid, Pageable pageable);

    /**
     * 客源管理-关注列表
     * @param employeeUniqueUuid
     * @return
     */
    Page<CustomerManageDto> getFocusList(String employeeUniqueUuid, Pageable pageable);

    /**
     * 获取经纪人客户互动详情
     * @param empMemberDetailDto
     * @return
     */
    CustomerManageDto getEmpMemberDetail(EmpMemberDetailDto empMemberDetailDto);

    /**
     * 获取集团新增操作数据
     * @param date
     * @param corporationCode
     * @return
     */
    Map<String, List<MemberOperateSimpleDto>> getOperateReportData(Date date, String corporationCode);


}
